#pragma once
#include <iostream>

//冒泡排序
void bubblesort(int *arr,int len)
{
	for (int i = 0; i < len - 1; i++)
	{
		int flag = 0;
		for (int j = 0; j < len - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				std::swap(arr[j], arr[j + 1]);
				flag = 1;
			}
		}
		if (flag == 0)
		{
			break;
		}
	}
}


//插入排序
// 分为已排序空间和未排序空间
//数组前面是已经排序的空间，后面是未排序的空间，通过依次遍历未排序的空间
//将这些数字插入到已排序空间中，稳定，O（N^2）
void insertSort(int* nums, int n)
{
	if (n <= 1) return;
	for (int i = 0; i < n; ++i) {
		for (int j = i; j > 0 ; --j)
		{
			if (nums[j] < nums[j - 1])
			{
				std::swap(nums[j], nums[j - 1]);
			}	
		}
	}
}

//选择排序
//选择最大的最小的，分别进行调换即可
void  selectSort(int* arr, int n)
{
	for (int i = 0; i < n-1; ++i)
	{
		int mid = i;
		for (int j = 0; j < n - i; ++j)
		{
			if (arr[j]<arr[mid])
			{
				mid = j;
			}
		}
		swap(arr[mid],arr[i]);
	}

}












